home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / apps / koalapad_programmers_toolkit_s1[koala_technologies_1984].nbz / graphics (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.2 KB  |  241 lines

  1. 10 REM             GRAPHICS
  2. 11 :
  3. 950 POKE 53265,PEEK(53265)AND239
  4. 960 POKE56578,PEEK(56578)OR3:REM SET  CIA
  5. 965 POKE56576,(PEEK(56576)AND252)OR3:REM SET BANK 0
  6. 970 POKE53272,(PEEK(53272)AND15)OR16:REM SET SCREEN
  7. 975 POKE53272,(PEEK(53272)AND240)OR4:REM SET BIT MAP
  8. 980 POKE 53265,PEEK(53265)AND223:REM TURN OFF MULTICOLOR
  9. 985 POKE53270,PEEK(53270)AND239:REM TURN OFF BIT MAP
  10. 990 POKE49191,3:POKE49194,4:POKE49195,16
  11. 1000 REM********************************
  12. 1002 REM     HIGH RESOLUTION DRAWING AIDS
  13. 1004 REM********************************
  14. 1005 CLR
  15. 1010 GOSUB 21200:REM SET UP VARIABLE NAMES
  16. 1020 POKE LO,1:POKESN,0
  17. 1025 POKE S1,6:POKE S2,6:POKE M1,255:POKE M2,255
  18. 1030 POKE CB,13:POKE CS,12
  19. 1040 PRINTCHR$(144)
  20. 1050 PRINTCHR$(147):PRINT"       HI-RESOLUTION DRAWING AIDS":PRINT:PRINT
  21. 1055 POKE 53265,PEEK(53265)OR16
  22. 1060 PRINT"              DOTS":PRINT
  23. 1070 PRINT"              LINES":PRINT
  24. 1080 PRINT"              BOXES":PRINT
  25. 1090 PRINT"              CIRCLES":PRINT
  26. 1100 PRINT"              MAIN MENU":PRINT
  27. 1120 PRINT:PRINT:PRINT
  28. 1130 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT"  PRESS LEFT BUTTON TO MAKE SELECTION"
  29. 1140 :
  30. 1220 REM
  31. 1225 POKET3,0:POKET3+1,0
  32. 1230 SYS TE
  33. 1240 POKE T3,1
  34. 1250 POKE H1,0:POKEH2,0:POKEH3,0:POKEH4,0
  35. 1260 POKE XS,12:POKE XF,12:POKE YS,4:POKE YF,12
  36. 1270 POKE S1,6:POKE S2,6:REM SET MINIMUM X AND Y FOR SPRITE BORDER
  37. 1290 SYS TE
  38. 1291 GETQQ$:IFQQ$=CHR$(136)THEN7000
  39. 1300 Y=PEEK(YN)
  40. 1310 N=(Y-2)/2:IF N<>INT(N) THEN N=0
  41. 1320 IF N<1 THEN 1290
  42. 1330 IF N>5 THEN 1290
  43. 1331 IF PEEK(LP)=1 THEN 1335
  44. 1332 GOSUB 21900:IFSW=0 THEN 1290
  45. 1333 IF SW=6 THEN N=5
  46. 1334 IF SW=2 THEN1290
  47. 1335 IF N=5 THEN GOTO 7000
  48. 1340 TF=N
  49. 1350 ON TF GOSUB 3000,4000,5000,6000
  50. 1400 ON SW GOTO 2000,1020,2000,1020,1020,7000
  51. 1500 :
  52. 1900 REM LINES 2000-2260 SET UP THE MCM GRAPHICS SCREEN.
  53. 2000 POKE LE,0 :REM SM LEVEL
  54. 2010 POKE LO,1 :REM PAD LOCK
  55. 2020 POKE MC,1 :REM MCM
  56. 2030 POKE CO,1 :REM WHITE BRUSH
  57. 2190 POKE BA,2 :REM BANKA
  58. 2200 POKE SA,112 :REM SCREENA
  59. 2210 POKE CA,8 :REM BMA
  60. 2220 POKE SS,92 :REM SCREEN START HI
  61. 2230 POKE CH,96 :REM BIT MAP START
  62. 2240 POKE SF,0 :REM RESET SPRITE FLAG
  63. 2250 SYS KLRCOL
  64. 2260 SYS TURNUN
  65. 2265 :
  66. 2270 SYS SPRITE
  67. 2280 SYS SETSCL
  68. 2290 SYS SCALE:REM PUT SCALED VALUES IN XN,YN
  69. 2295 IF PEEK(LP)=1 THEN 2310
  70. 2300 IF PEEK(RP)=1 THEN GOTO 6540:REM IF RIGHT BUTTON PRESSED BACK TO SUBMENU
  71. 2305 GOSUB 21900:ON SW GOTO 2310,6500,2310,6500,6500,6500
  72. 2310 IF TF>=2 THEN 2420
  73. 2320 IF PEEK(B1)=1 THEN SYS PLTDOT
  74. 2330 GOTO 2270
  75. 2335 :
  76. 2415 :
  77. 2420 REM** LINES,BOXES,CIRCLES,  GET FIRST POINT
  78. 2440 IF PEEK(LP)=0 THEN 2270
  79. 2450 POKE X1,PEEK(XN):REM SET FIRST POINT
  80. 2460 POKE Y1,PEEK(YN)
  81. 2465 POKE SN,0:REM TURN OFF SPRITE
  82. 2466 :
  83. 2470 SYS SPRITE:SYS SETSCL:SYS SCALE:REM GET 2ND POINT
  84. 2471 GETQQ$:IFQQ$=CHR$(136)THENSW=6:GOTO6500
  85. 2472 IF PEEK(RP)=1 THEN 6540
  86. 2475 :
  87. 2480 POKE X2,PEEK(XN):REM PUT 2ND POINT VALUES INTO X2,Y2
  88. 2490 POKE Y2,PEEK(YN)
  89. 2500 POKE XR,0:REM XOR OFF
  90. 2510 IF PEEK(LP)=0 THEN  POKE XR,1:REM XOR ON
  91. 2515 :
  92. 2516 REM:DRAW GRAPHIC OBJECT FIRST TIME
  93. 2520 IF TF=2 THEN SYS LINE
  94. 2530 IF TF=3 THEN SYS BOX
  95. 2540 IF TF=4 THEN SYS RADIUS:SYS CIRCLE
  96. 2550 IF PEEK(LP)=1 THEN POKE SN,1:GOTO2270:REM IF LEFT BUTTON,  REPEAT CYCLE
  97. 2555 :
  98. 2556 REM:DRAW GRAPHIC OBJECT 2ND TIME;  I.E., ERASE IF IN XOR MODE
  99. 2560 IF TF=2 THEN SYS LINE
  100. 2570 IF TF=3 THEN SYS BOX
  101. 2580 IF TF=4 THEN SYS RADIUS:SYS CIRCLE
  102. 2590 GOTO2470
  103. 2600 END
  104. 2700 :
  105. 3000 REM *****INSTRUCTIONS FOR  DOTS *********
  106. 3010 PRINTCHR$(147):PRINT"             PLOTTING DOTS":PRINT
  107. 3020 PRINT" THIS ROUTINE PLOTS DOTS ON THE HI-RES"
  108. 3030 PRINT"SCREEN WHEN YOU PRESS THE LEFT BUTTON.":PRINT
  109. 3040 PRINT" IF YOU WANT TO PLOT DOTS ON THE HI-RES"
  110. 3050 PRINT"MULTICOLOR SCREEN YOU MUST POKE MCM,1 "
  111. 3060 PRINT"AND POKE COLOR, 0-15":PRINT
  112. 3070 PRINT" WHEN YOU PLOT DOTS FROM THE TABLET,"
  113. 3080 PRINT"YOU MUST FIRST CALL THE ROUTINES SCALIT,";
  114. 3090 PRINT"SMOOTH, AND SCALE TO CONVERT TABLET DATA";
  115. 3100 PRINT"TO SCREEN DATA.":PRINT
  116. 3110 PRINT" IF YOU WANT TO XOR A DOT ON THE SCREEN"
  117. 3115 PRINT"YOU SHOULD POKE XOR,1 BEFORE CALLING IT."
  118. 3120 PRINT" NOW GO TO THE NEXT SCREEN AND PRESS "
  119. 3130 PRINT"THE LEFT BUTTON TO PLOT DOTS.":PRINT:PRINT
  120. 3140 PRINT" PRESS THE LEFT BUTTON TO CONTINUE"
  121. 3150 GOSUB 21900:IF SW=0 THEN 3150
  122. 3170 PRINTCHR$(147):RETURN
  123. 3200 :
  124. 4000 REM****INSTRUCTIONS FOR LINES  *********
  125. 4010 PRINTCHR$(147):PRINT"             PLOTTING LINES":PRINT:PRINT:PRINT
  126. 4020 PRINT" MOVE THE CURSOR TO SET ONE ENDPOINT OF"
  127. 4030 PRINT"THE LINE AND CLICK THE LEFT BUTTON.":PRINT
  128. 4040 PRINT" NOW SLIDE YOUR FINGER OR STYLUS AROUND"
  129. 4050 PRINT"ON THE TABLET. WHEN YOU HAVE A LINE"
  130. 4060 PRINT"WHERE YOU WANT IT, CLICK THE LEFT"
  131. 4070 PRINT"BUTTON TO ESTABLISH THE LINE"
  132. 4080 PRINT"PERMANENTLY.":PRINT:PRINT
  133. 4090 PRINT" THIS TOOL GIVES YOU THE ABILITY TO USE"
  134. 4100 PRINT"RUBBER LINES IN YOUR OWN PROGRAMS.":PRINT:PRINT:PRINT:PRINT
  135. 4110 PRINT:PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
  136. 4120 GOSUB 21900
  137. 4130 IF SW=0 THEN 4120
  138. 4140 PRINTCHR$(147):RETURN
  139. 4200 :
  140. 5000 REM******INSTRUCTIONS FOR BOXES *********
  141. 5010 PRINTCHR$(147):PRINT"             PLOTTING BOXES":PRINT:PRINT
  142. 5020 PRINT" USE THE CURSOR TO POINT TO ONE CORNER"
  143. 5030 PRINT"OF A BOX AND CLICK THE LEFT BUTTON TO"
  144. 5040 PRINT"SET THE POINT.":PRINT
  145. 5050 PRINT" NOW SLIDE YOUR FINGER OR STYLUS AROUND"
  146. 5060 PRINT"ON THE TABLET AND WATCH AS THE BOX IS"
  147. 5070 PRINT"XORED ON AND OFF THE SCREEN.":PRINT
  148. 5080 PRINT" WHEN YOU FIND ONE YOU LIKE, PRESS AND"
  149. 5090 PRINT"HOLD LEFT BUTTON TO ESTABLISH IT        PERMANENTLY.":PRINT
  150. 5100 PRINT" NOW YOU CAN DRAW 'RUBBER' BOXES IN"
  151. 5110 PRINT"YOUR OWN PROGRAMS!!!":PRINT:PRINT:PRINT
  152. 5120 PRINT:PRINT
  153. 5130 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
  154. 5140 GOSUB 21900
  155. 5150 IF SW=0 THEN 5140
  156. 5160 PRINTCHR$(147):RETURN
  157. 5200 :
  158. 6000 REM*****INSTRUCTIONS  FOR CIRCLES *******
  159. 6010 PRINTCHR$(147):PRINT"            PLOTTING CIRCLES":PRINT:PRINT
  160. 6020 PRINT" USE THE CURSOR TO POINT TO THE CENTER"
  161. 6030 PRINT"OF THE CIRCLE AND CLICK THE LEFT BUTTON":PRINT
  162. 6040 PRINT" NOW MOVE THE CURSOR AND OBSERVE THE"
  163. 6050 PRINT"RIM OF THE CIRCLE EXPAND AND CONTRACT."
  164. 6060 PRINT"THE CURSOR POSITION IS SETTING THE "
  165. 6070 PRINT"RADIUS OF THE CIRCLE.":PRINT
  166. 6080 PRINT" NOW PRESS AND HOLD THE LEFT BUTTON  TO LOCK IT ";
  167. 6090 PRINT"INTO PLACE.":PRINT:PRINT
  168. 6100 PRINT" THIS TOOL GIVES YOU THE ABILITY TO USE"
  169. 6110 PRINT"RUBBER CIRCLES IN YOUR OWN PROGRAMS!!!":PRINT:PRINT:PRINT:PRINT
  170. 6120 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
  171. 6130 GOSUB 21900
  172. 6140 IF SW=0 THEN 6130
  173. 6150 PRINTCHR$(147):RETURN
  174. 6160 CLR
  175. 6500 :
  176. 6510 REM SET BANK 0 AND RESTORE TEXT SCREE
  177. 6520 :
  178. 6540 POKE BA,3 :REM BANKA
  179. 6550 POKE SA,16 :REM SCREENA
  180. 6560 POKE CA,4 :REM CHARACTER MEMORY A
  181. 6570 POKE SS,4  :REM SCREEN START HI
  182. 6580 POKE CH,16 :REM BIT MAP START
  183. 6590 POKE SN,0:REM TURN OFF SPRITES
  184. 6600 SYS TRNOFF
  185. 6605 IF SW=5 THEN 1020
  186. 6606 IF SW=6 THEN 7000
  187. 6610 FLAG=0:GOTO1350
  188. 7000 :
  189. 7005 CLR
  190. 7010 REM   MAIN MENU
  191. 7020 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
  192. 7030 CLOSE2
  193. 7040 OPEN 15,8,15
  194. 7050 INPUT#15,A$,B$,C$,D$
  195. 7060 IF VAL(A$)=0 THEN 7100
  196. 7070 PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT"             ";B$
  197. 7080 FORI=1TO1000:NEXTI
  198. 7090 GOTO 1000
  199. 7100 CLR
  200. 7105 PRINT"[147]":POKE214,8:PRINT:PRINT"         LOADING MAIN MENU..."
  201. 7110 LOAD"MENU",8
  202. 21000 :
  203. 21200 REM ************SET UPS************
  204. 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
  205. 21204 CBRDER=53280:CSCREEN=53281
  206. 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
  207. 21208 TABRAW=49328:DEBOUNCE=49331:FILTER=49334:PERFECT=49337
  208. 21210 SMOOTH=49340:PADLOCK=49343:SCALE=49346:TEXTCR=49349:SPRITE=49352
  209. 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
  210. 21220 LINE=49382:BOX=49385:RADIUS=49388:CIRCLE=49391
  211. 21222 KOALAPICTURE=49394
  212. 21223 :
  213. 21225 REM VARIABLE NAMES
  214. 21227 RX=49152:RY=49154
  215. 21230 B1=49156:B2=49157:LDBOUNCE=49159:RDBOUNCE=49160:LPRESS=49161:RPRESS=49162
  216. 21231 LX=49163:LY=49164:TX=49165:TY=49166
  217. 21232 FX=49168:FY=49169:UX=49172:UY=49173:ERRUR=49174:M1=49175:M2=49176
  218. 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
  219. 21238 XH=49186:S1=49187:S2=49188:YH=49190
  220. 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
  221. 21245 H1=49178:H2=49180:H3=49182:H4=49184
  222. 21246 :
  223. 21250 BANKA=49191:SA=49192:CA=49193:SSTART=49194:CH=49195
  224. 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XISP=53264:YLOSP=53249
  225. 21256 P1=49201:P2=49202:P3=49203:P4=49204
  226. 21260 MCM=49205:COLR=49206:XR=49208
  227. 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:REDIUS=49213
  228. 21266 T3=49239
  229. 21270 RETURN
  230. 21280 :
  231. 21900 REM****CHECK SWITCHES**************
  232. 21905 SW=0
  233. 21910 SYS PE
  234. 21920 IF PEEK(LP)=1 THEN SW=1
  235. 21930 IF PEEK(RP)=1 THEN SW=2
  236. 21935 IF PEEK(198)=0 THEN RETURN
  237. 21940 FORI9=1TO PEEK(198):GET QQ$:NEXT I9
  238. 21965 IF QQ$=CHR$(136) THEN SW=6
  239. 21970 RETURN
  240. 30000 OPEN15,8,15:PRINT#15,"S0:GRAPHICS":SAVE"GRAPHICS",8
  241.